//go:build linux
// +build linux

package config

import (
	"fmt"
	"os"
)

// initialize Linux系统初始化（简化版，使用密钥文件+权限控制）
func (skm *SecureKeyManager) initialize() error {
	// Linux系统使用密钥文件，但设置严格的权限
	key, err := LoadEncryptionKey()
	if err == nil {
		skm.masterKey = key
		return nil
	}

	// 生成新的主密钥
	key, err = GenerateEncryptionKey()
	if err != nil {
		return fmt.Errorf("生成主密钥失败: %v", err)
	}

	// 保存密钥文件
	if err := SaveEncryptionKey(key); err != nil {
		return fmt.Errorf("保存主密钥失败: %v", err)
	}

	// 设置严格的文件权限
	if err := os.Chmod(KeyFile, 0600); err != nil {
		return fmt.Errorf("设置文件权限失败: %v", err)
	}

	skm.masterKey = key
	return nil
}

// getMasterKey Linux系统获取主密钥
func (skm *SecureKeyManager) getMasterKey() ([]byte, error) {
	return LoadEncryptionKey()
}

// saveMasterKey saves master key on Linux
// saveMasterKey在Linux上保存主密钥
func (skm *SecureKeyManager) saveMasterKey(key []byte) error {
	return SaveEncryptionKey(key)
}